/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package configuration;

import autoUpdate.WatchEntry;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *
 * @author zalem1
 */
public class Preferences {
    private String _updateDatabasePath = Defaults.UpdateDatabasePath;

    private List<PicasaAccount> _userAccounts = new ArrayList<PicasaAccount>();
    
    private long _poolingInterval = Defaults.MinPoolingInterval;
    private Integer _previewPictureCount = Defaults.MaxPreviewPictures;

    private String _httpProxyHost = "";
    private String _httpProxyPort = "";
    private String _httpsProxyHost = "";
    private String _httpsProxyPort = "";
    private String _proxyUsername = "";
    private String _proxyPassword = "";
    
    private String _systemTryIconPath = null;
    
    private String _defaultPhotoFolder;
    private String _defaultResolution = Defaults.DefaultResolution.toString();
    private String _smallResolution = Defaults.SmallResolution.toString();
    private String _mediumResolution = Defaults.MediumResolution.toString();
    private String _largeResolution = Defaults.LargeResolution.toString();
    
    
    private Boolean _autoSyncNewAlbums;
    private Boolean _downloadPhotos;
    private Boolean _downloadVideos;
    
    /**
     * @return the UserAccounts
     */
    public List<PicasaAccount> getUserAccounts() {
        return _userAccounts;
    }

    /**
     * @param UserAccounts the UserAccounts to set
     */
    public void setUserAccounts(List<PicasaAccount> UserAccounts) {
        _userAccounts = UserAccounts;
    }
    

    /**
     * @return the previewPictureCount
     */
    public Integer getPreviewPictureCount() {
        return _previewPictureCount;
    }

    /**
     * @param previewPictureCount the previewPictureCount to set
     */
    public void setPreviewPictureCount(Integer previewPictureCount) {
        _previewPictureCount = previewPictureCount;
    }

    /**
     * @return the httpProxyHost
     */
    public String getHttpProxyHost() {
        return _httpProxyHost;
    }

    /**
     * @param httpProxyHost the httpProxyHost to set
     */
    public void setHttpProxyHost(String httpProxyHost) {
        _httpProxyHost = httpProxyHost;
    }

    /**
     * @return the httpProxyPort
     */
    public String getHttpProxyPort() {
        return _httpProxyPort;
    }

    /**
     * @param httpProxyPort the httpProxyPort to set
     */
    public void setHttpProxyPort(String httpProxyPort) {
        this._httpProxyPort = httpProxyPort;
    }

    /**
     * @return the httpsProxyHost
     */
    public String getHttpsProxyHost() {
        return _httpsProxyHost;
    }

    /**
     * @param httpsProxyHost the httpsProxyHost to set
     */
    public void setHttpsProxyHost(String httpsProxyHost) {
        this._httpsProxyHost = httpsProxyHost;
    }

    /**
     * @return the httpsProxyPort
     */
    public String getHttpsProxyPort() {
        return _httpsProxyPort;
    }

    /**
     * @param httpsProxyPort the httpsProxyPort to set
     */
    public void setHttpsProxyPort(String httpsProxyPort) {
        this._httpsProxyPort = httpsProxyPort;
    }

    /**
     * @return the proxyUsername
     */
    public String getProxyUsername() {
        return _proxyUsername;
    }

    /**
     * @param proxyUsername the proxyUsername to set
     */
    public void setProxyUsername(String proxyUsername) {
        this._proxyUsername = proxyUsername;
    }

    /**
     * @return the proxyPassword
     */
    public String getProxyPassword() {
        return _proxyPassword;
    }

    /**
     * @param proxyPassword the proxyPassword to set
     */
    public void setProxyPassword(String proxyPassword) {
        this._proxyPassword = proxyPassword;
    }

    /**
     * @return the _poolingInterval
     */
    public long getPoolingInterval() {
        return _poolingInterval;
    }

    /**
     * @param poolingInterval the _poolingInterval to set
     */
    public void setPoolingInterval(long poolingInterval) {
        this._poolingInterval = poolingInterval;
    }

    public PicasaAccount GetPicasaAccountById(long PicasaAccountId)
    {
        for (PicasaAccount account : _userAccounts)
        {
            if (account.getId() == PicasaAccountId)
            {
                return account;
            }
        }
        return null;
    }

    /**
     * @return the systemTryIconPath
     */
    public String getSystemTryIconPath() {
        return _systemTryIconPath;
    }

    /**
     * @param systemTryIconPath the systemTryIconPath to set
     */
    public void setSystemTryIconPath(String systemTryIconPath) {
        this._systemTryIconPath = systemTryIconPath;
    }

    /**
     * @return the _defaultPhotoFolder
     */
    public String getDefaultPhotoFolder() {
        return _defaultPhotoFolder;
    }

    /**
     * @param defaultPhotoFolder the _defaultPhotoFolder to set
     */
    public void setDefaultPhotoFolder(String defaultPhotoFolder) {
        this._defaultPhotoFolder = defaultPhotoFolder;
    }

    /**
     * @return the _autoSyncNewAlbums
     */
    public Boolean getAutoSyncNewAlbums() {
        return _autoSyncNewAlbums;
    }

    /**
     * @param autoSyncNewAlbums the _autoSyncNewAlbums to set
     */
    public void setAutoSyncNewAlbums(Boolean autoSyncNewAlbums) {
        this._autoSyncNewAlbums = autoSyncNewAlbums;
    }

    /**
     * @return the _downloadPhotos
     */
    public Boolean getDownloadPhotos() {
        return _downloadPhotos;
    }

    /**
     * @param downloadPhotos the _downloadPhotos to set
     */
    public void setDownloadPhotos(Boolean downloadPhotos) {
        this._downloadPhotos = downloadPhotos;
    }

    /**
     * @return the _downloadVideos
     */
    public Boolean getDownloadVideos() {
        return _downloadVideos;
    }

    /**
     * @param downloadVideos the _downloadVideos to set
     */
    public void setDownloadVideos(Boolean downloadVideos) {
        this._downloadVideos = downloadVideos;
    }

    /**
     * @return the _updateDatabasePath
     */
    public String getUpdateDatabasePath() {
        return _updateDatabasePath;
    }

    /**
     * @param updateDatabasePath the _updateDatabasePath to set
     */
    public void setUpdateDatabasePath(String updateDatabasePath) {
        this._updateDatabasePath = updateDatabasePath;
    }

    /**
     * @return the _defaultResolution
     */
    public String getDefaultResolution() {
        return _defaultResolution;
    }

    /**
     * @param defaultResolution the _defaultResolution to set
     */
    public void setDefaultResolution(String defaultResolution) {
        this._defaultResolution = defaultResolution;
    }

    /**
     * @return the _smallResolution
     */
    public String getSmallResolution() {
        return _smallResolution;
    }

    /**
     * @param smallResolution the _smallResolution to set
     */
    public void setSmallResolution(String smallResolution) {
        this._smallResolution = smallResolution;
    }

    /**
     * @return the _mediumResolution
     */
    public String getMediumResolution() {
        return _mediumResolution;
    }

    /**
     * @param mediumResolution the _mediumResolution to set
     */
    public void setMediumResolution(String mediumResolution) {
        this._mediumResolution = mediumResolution;
    }

    /**
     * @return the _largeResolution
     */
    public String getLargeResolution() {
        return _largeResolution;
    }

    /**
     * @param largeResolution the _largeResolution to set
     */
    public void setLargeResolution(String largeResolution) {
        this._largeResolution = largeResolution;
    }



}
